{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "4e7f71a8-20ff-4471-97f6-52217d46150e",
   "metadata": {},
   "source": [
    "# 柱状图"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ccbd4e2b-a702-4153-85ec-bb93c5081edb",
   "metadata": {},
   "source": [
    "## （1）最简单的柱状图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "aa868b99-807a-46cd-94dc-bafce69508a8",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "253b3725-5e39-4778-b4f9-2e59e65322f1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<BarContainer object of 3 artists>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 第一个参数是横坐标x，第二个参数是高度height\n",
    "plt.bar([0, 1, 2], [2, 3, 1])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e3e78ecc-f8fa-4623-9027-594faae9b6a1",
   "metadata": {},
   "source": [
    "## （2）堆叠柱状图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "31681f76-24fb-431b-afaf-284ff6bbef71",
   "metadata": {},
   "outputs": [],
   "source": [
    "labels = ['G1', 'G2', 'G3', 'G4', 'G5','G6']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "db75c92a-7869-4138-9ad7-e5c26f216b90",
   "metadata": {},
   "outputs": [],
   "source": [
    "men_means = np.random.randint(20, 35, size=(6,))\n",
    "women_means = np.random.randint(20, 35, size=(6,))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "0c480af7-d904-468d-ad00-e6a87b466b48",
   "metadata": {},
   "outputs": [],
   "source": [
    "men_std = np.random.randint(1, 7, size=(6,))\n",
    "women_std = np.random.randint(1, 7, size=(6,))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "40eed968-ef15-4241-9288-81fdd9858107",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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3LjRabugoKASBZmmTZuamjVrmuPHjzva0tPTjSSnIPPZZ58ZSebNN9902n/lypVF2su79uPHj5vg4GBz3333OT13VlaWCQoKcmrv37+/kWRGjRp1weMGzocgg6vSpk2bzM0332z8/Pwcb/IhISHm3//+t2ObF154wUhyemP+s0WLFhlJ5sMPP3Rqz8/PN4GBgU5nNxISEozdbjf5+flO2954442mcePG5vDhw07LTz/9ZCSZp59+2hjzvzfvV199tUiwuhhJJj4+vkj77bffbvz8/MyZM2eMMcb88MMPjuc4Z8qUKUaS2bFjxwWfo169eqZt27ZF2ocOHVpskImJiSmybf369U3r1q2LtKemphpJjrNHpQ0ynp6e5sSJE07bzpgxw0gyGRkZFzyuPzp27Jg5fPiwmTBhgpHkFPiio6NNo0aNiuzTrFkzp7BYv35906ZNmyLb/e1vf7tokPn111+NJPPEE08UWde0aVOnIPPwww+boKAgc+jQoSKvrYCAAHPvvfdettrfffddI8l8+umnRZ47KSnJ1K1b17HvuSCzZ8+e8x43cCHMkcFVqVWrVnr33Xd19OhRbdq0SSkpKTp+/LhuvfVWff/995J+n0vj4eGhRo0anbefPXv2SJIaNGjg1O7t7a3atWs71p9zzTXXyNvb26ltx44d+u677xQSEuK01K9fX9L/JiDffvvtateune69916FhYXpjjvu0FtvvVXiuRX16tUr0la/fn2dPHlShw8fliTFxsaqVatWevPNNx3bvPnmm2rTpo3q1q17wf737NlT7Dbn2y8mJqbYPv48lpLUsGFDx/qyiIiIKDJ59Nz4XuyzT9atW6fExET5+/srODhYISEhjnlJ2dnZTttGRUUV2b9KlSpOc1L27NlT7O+iuOP+s3PHX5Jx3rFjh7KzsxUaGlrktXXixIkiE9vLs/YdO3ZIkrp06VLkuT/++OMiz+3p6amaNWte6NCB8+KuJVzVvL291apVK7Vq1Ur169fXwIEDtXTpUo0ePfqyPF9xd+UUFhaqadOmmjhxYrH7REZGOvZdu3at0tLStGLFCq1cuVJLlixRly5d9PHHH6tSpUrlUuPdd9+tRx55RL/88ovy8/O1YcMGTZ06tVz6/qNLuUPJZrMV23727Nky91mcXbt2qWvXroqNjdXEiRMVGRkpb29vffjhh5o0aVKREHm+34ExplzrKonCwkKFhoY6hdI/CgkJcXpcnrWfG5c33nhD4eHhRdZ7ejq/9djtdnl48Hc1yoYgA/yfli1bSpIOHDggSapTp44KCwv1/fff67rrrit2n+joaEnS9u3bVbt2bUd7QUGBMjMzlZiYeNHnrVOnjr7++mt17dr1vG/Q53h4eKhr167q2rWrJk6cqAkTJujJJ59UWlraRZ/r3F/Jf/TTTz/Jz8/P6U3tjjvu0IgRI/Svf/1Lp06dkpeXl26//faLHkd0dLR27txZpL24tgv1sX379iLtP/74o2O99PuZAklF7gw73xmb/fv3F7ml96effpKkInf6/NH777+v/Px8vffee05nLNLS0i5+MOcRHR1d7O+iuOMubl+p+DH9c1udOnX0n//8R+3atSu329pLWnudOnUk/X4XYEn+DQCXggiMq05aWlqxf2V++OGHkv53mvymm26Sh4eHxo0bV+Qv73P7JyYmytvbW5MnT3bqc+7cucrOzlavXr0uWs9tt92mX3/9VXPmzCmy7tSpU8rNzZUkHTlypMj6cwHrz7dpFycjI0Nffvml4/G+ffv073//W0lJSU5/jVevXl09evTQwoUL9eabb6p79+6qXr36RftPTk5WRkaGtm7d6mg7cuTIec8IFKdnz57atGmT023eubm5mj17tmrVquW4zHfujfKPt4+fPXtWs2fPLrbfM2fOOG7vln4PmrNmzVJISIji4uLOW8+5cfnj7zY7O1vz588v8TH9Wc+ePbVhwwZt2rTJ0Xb48OESjVNERISaNGmiBQsW6MSJE472NWvWaNu2bU7b3nbbbTp79qzGjx9fpJ8zZ84UCYHlWXtycrICAwM1YcIEnT59ukg/5y5lAuWBMzK46gwdOlQnT57UzTffrNjYWBUUFGj9+vVasmSJatWqpYEDB0r6fc7Bk08+qfHjx6tDhw665ZZbZLfbtXnzZkVERCg1NVUhISFKSUnR2LFj1b17d914443avn27pk+frlatWqlfv34Xreevf/2r3nrrLT344INKS0tTu3btdPbsWf3444966623HJ+1Mm7cOK1du1a9evVSdHS0Dh06pOnTp6tmzZpq3779RZ+nSZMmSk5O1sMPPyy73a7p06dLksaOHVtk27vvvlu33nqrJBX7RlickSNHauHCherWrZuGDh0qf39/vfrqq4qKitKRI0cuerZJkkaNGqV//etf6tGjhx5++GFVrVpVr7/+ujIzM/XOO+84Lj80btxYbdq0UUpKio4cOaKqVatq8eLFOnPmTLH9RkRE6LnnntPPP/+s+vXra8mSJdq6datmz54tLy+v89aTlJQkb29v3XDDDXrggQd04sQJzZkzR6GhoY4zd6U1cuRIvfHGG+revbseeeQR+fv7a/bs2YqOjtY333xz0f0nTJig3r17q127dho4cKCOHj2qqVOnqkmTJk7hJiEhQQ888IBSU1O1detWJSUlycvLSzt27NDSpUv1yiuvOH7H5V17YGCgZsyYob/+9a9q0aKF7rjjDoWEhGjv3r1asWKF2rVrd1kuV+Iq5cqZxoArfPTRR+aee+4xsbGxJiAgwHh7e5u6deuaoUOHmoMHDxbZft68eaZ58+bGbrebKlWqmISEBPPJJ584bTN16lQTGxtrvLy8TFhYmHnooYfM0aNHnbZJSEgwjRs3LramgoIC89xzz5nGjRs7nicuLs6MHTvWZGdnG2OMWb16tendu7eJiIgw3t7eJiIiwtx5553mp59+uugxSzKDBw82CxcuNPXq1TN2u900b97c6e6eP8rPzzdVqlQxQUFB5tSpUxft/5yvvvrKdOjQwdjtdlOzZk2TmppqJk+ebCSZrKwsx3bR0dGmV69exfaxa9cuc+utt5rg4GDj4+NjWrdubT744INit0tMTDR2u93x+SeffPJJsXctNW7c2HzxxRcmPj7e+Pj4mOjo6CKfA3M+7733nmnWrJnx8fExtWrVMs8995yZN29esXdiFXdMCQkJJiEhwantm2++MQkJCcbHx8dcc801Zvz48Wbu3Lkluv3aGGMWL15sYmNjjd1uN02aNDHvvfee6dOnj4mNjS2y7ezZs01cXJzx9fU1lStXNk2bNjUjR440+/fvv+y1p6WlmeTkZBMUFGR8fHxMnTp1zIABA5w+BqB///7G39//oscMnI/NGBfMQgPg1s6cOaOIiAjdcMMNmjt37iX1NWzYMM2aNUsnTpwotwnJpdGpUyf997//1bffflvhz12RrrvuOoWEhOiTTz5xdSlAhWKODIAili9frsOHD+vuu+8u1X6nTp1yevzbb7/pjTfeUPv27V0SYq5Ep0+fLnIJLT09XV9//bU6derkmqIAF2KODACHjRs36ptvvtH48ePVvHlzJSQklGr/+Ph4derUSQ0bNtTBgwc1d+5c5eTk6KmnnrpMFV99fv31VyUmJqpfv36KiIjQjz/+qJkzZyo8PFwPPvigq8sDKhxBBoDDjBkztHDhQl133XV67bXXSr1/z5499fbbb2v27Nmy2Wxq0aKF5s6dq44dO5Z/sVepKlWqKC4uTq+++qoOHz4sf39/9erVS88++6yqVavm6vKACsccGQAAYFnMkQEAAJZFkAEAAJZ1xc+RKSws1P79+1W5cuUSfSAXAABwPWOMjh8/roiIiAt+F9cVH2T279/v+NI9AABgLfv27bvgt6Nf8UGmcuXKkn4fiMDAQBdXAwAASiInJ0eRkZGO9/HzueKDzLnLSYGBgQQZAAAs5mLTQpjsCwAALIsgAwAALIsgAwAALOuKnyMDAMA5Z8+e1enTp11dBiRVqlRJnp6el/zRKAQZAMBV4cSJE/rll1/EN/O4Dz8/P9WoUUPe3t5l7oMgAwC44p09e1a//PKL/Pz8FBISwgekupgxRgUFBTp8+LAyMzNVr169C37o3YUQZAAAV7zTp0/LGKOQkBD5+vq6uhxI8vX1lZeXl/bs2aOCggL5+PiUqR8m+wIArhqciXEvZT0L49RHOdQBAADgEgQZAABgWcyRAQBctWqNWlGhz/fzs70q9PmuBpyRAQDAjQ0YMEA2m00PPvhgkXWDBw+WzWbTgAEDKr4wN0GQAQDAzUVGRmrx4sU6deqUoy0vL0+LFi1SVFSUCytzPYIMAABurkWLFoqMjNS7777raHv33XcVFRWl5s2bO9oKCwuVmpqqmJgY+fr66tprr9Xbb7/tWJ+eni6bzabVq1erZcuW8vPzU9u2bbV9+/YKPZ7yRJCpYLm5ubLZbLLZbMrNzXV1OQAAi7jnnns0f/58x+N58+Zp4MCBTtukpqZqwYIFmjlzpr777jsNHz5c/fr105o1a5y2e/LJJ/XSSy/piy++kKenp+65554KOYbLgcm+AABYQL9+/ZSSkqI9e/ZIktatW6fFixcrPT1dkpSfn68JEyboP//5j+Lj4yVJtWvX1ueff65Zs2YpISHB0dczzzzjeDxq1Cj16tVLeXl5Zf5QOlciyAAAYAEhISHq1auXXnvtNRlj1KtXL1WvXt2xfufOnTp58qS6devmtF9BQYHT5SdJatasmePnGjVqSJIOHTpkyfk2BBkAACzinnvu0ZAhQyRJ06ZNc1p34sQJSdKKFSt0zTXXOK2z2+1Oj728vBw/n/u048LCwnKvtyIQZAAAsIju3buroKBANptNycnJTusaNWoku92uvXv3Ol1GutIRZAAAsIhKlSrphx9+cPz8R5UrV9ajjz6q4cOHq7CwUO3bt1d2drbWrVunwMBA9e/f3xUlX3YEGQDAVcuKn7QbGBh43nXjx49XSEiIUlNTtXv3bgUHB6tFixZ64oknKrDCimUzxhhXF3E55eTkKCgoSNnZ2Rf85VeU3NxcBQQESPr9eqa/v7+LKwKAK19eXp4yMzMVExNjyTtzrlQX+r2U9P2bz5EBAACWRZABAACWRZABAACWRZAB4ISv0QBgJQQZAABgWQQZAABgWQQZAABgWQQZAABgWQQZAABgWXxFwaUYE1T6fQr+8EHKz9SQvG1leN7s0u8DACiqLP+PX9Lz8f93eXP5GZlff/1V/fr1U7Vq1eTr66umTZvqiy++cKw3xuif//ynatSoIV9fXyUmJmrHjh0urBgAgIoxc+ZMVa5cWWfOnHG0nThxQl5eXurUqZPTtunp6bLZbNq1a1cFV+laLg0yR48eVbt27eTl5aWPPvpI33//vV566SVVqVLFsc3zzz+vyZMna+bMmdq4caP8/f2VnJysvLw8F1YOAMDl17lzZ504ccLpD/zPPvtM4eHh2rhxo9N7YVpamqKiolSnTh1XlOoyLg0yzz33nCIjIzV//ny1bt1aMTExSkpKcvwSjDF6+eWX9Y9//EO9e/dWs2bNtGDBAu3fv1/Lly93ZekAAFx2DRo0UI0aNZSenu5oS09PV+/evRUTE6MNGzY4tXfu3Fn5+fl6+OGHFRoaKh8fH7Vv316bN2922s5ms2nVqlVq3ry5fH191aVLFx06dEgfffSRGjZsqMDAQN111106efKkY7/CwkKlpqYqJiZGvr6+uvbaa/X2228X6Xf16tVq2bKl/Pz81LZtW23fvv2yjpFLg8x7772nli1b6i9/+YtCQ0PVvHlzzZkzx7E+MzNTWVlZSkxMdLQFBQXp+uuvV0ZGRrF95ufnKycnx2kBAMCqOnfurLS0NMfjtLQ0derUSQkJCY72U6dOaePGjercubNGjhypd955R6+//rq+/PJL1a1bV8nJyTpy5IhTv2PGjNHUqVO1fv167du3T7fddptefvllLVq0SCtWrNDHH3+sKVOmOLZPTU3VggULNHPmTH333XcaPny4+vXrpzVr1jj1++STT+qll17SF198IU9PT91zzz2XcXRcHGR2796tGTNmqF69elq1apUeeughPfzww3r99dclSVlZWZKksLAwp/3CwsIc6/4sNTVVQUFBjiUyMvLyHgQAXABf+YBL1blzZ61bt05nzpzR8ePH9dVXXykhIUEdO3Z0nKnJyMhQfn6+OnXqpBkzZuiFF15Qjx491KhRI82ZM0e+vr6aO3euU79PP/202rVrp+bNm2vQoEFas2aNZsyYoebNm6tDhw669dZbHUEpPz9fEyZM0Lx585ScnKzatWtrwIAB6tevn2bNmuXU7zPPPKOEhAQ1atRIo0aN0vr16y/rdBCX3rVUWFioli1basKECZKk5s2b69tvv9XMmTPVv3//MvWZkpKiESNGOB7n5OQQZgAAltWpUyfl5uZq8+bNOnr0qOrXr6+QkBAlJCRo4MCBysvLU3p6umrXrq3s7GydPn1a7dq1c+zv5eWl1q1b64cffnDqt1mzZo6fw8LC5Ofnp9q1azu1bdq0SZK0c+dOnTx5Ut26dXPqo6CgQM2bNz9vvzVq1JAkHTp0SFFRUZc4EsVzaZCpUaOGGjVq5NTWsGFDvfPOO5Kk8PBwSdLBgwcdg3Hu8XXXXVdsn3a7XXa7/fIUDABABatbt65q1qyptLQ0HT16VAkJCZKkiIgIRUZGav369UpLS1OXLl1K1a+Xl5fjZ5vN5vT4XFthYaGk3++UkqQVK1bommuucdruz++5f+5XkqOfy8Gll5batWtXZBLQTz/9pOjoaElSTEyMwsPDtXr1asf6nJwcbdy4UfHx8RVaKwAArtK5c2elp6crPT3d6bbrjh076qOPPtKmTZvUuXNn1alTR97e3lq3bp1jm9OnT2vz5s1FThyURqNGjWS327V3717VrVvXaXH1VQ+XnpEZPny42rZtqwkTJui2227Tpk2bNHv2bM2ePVvS70lu2LBhevrpp1WvXj3FxMToqaeeUkREhG666SZXlg4AQIXp3LmzBg8erNOnTzvOyEhSQkKChgwZooKCAnXu3Fn+/v566KGH9Nhjj6lq1aqKiorS888/r5MnT2rQoEFlfv7KlSvr0Ucf1fDhw1VYWKj27dsrOztb69atU2BgYJmng5QHlwaZVq1aadmyZUpJSdG4ceMUExOjl19+WX379nVsM3LkSOXm5ur+++/XsWPH1L59e61cuVI+Pj4urBwAcEWwyCftdu7cWadOnVJsbKzTDTAJCQk6fvy44zZtSXr22WdVWFiov/71rzp+/LhatmypVatWOX1GW1mMHz9eISEhSk1N1e7duxUcHKwWLVroiSeeuKR+L5XNGGMuvpl15eTkKCgoSNnZ2QoMDCzfzsvw0da5BUYBqcclSSdSKsufryiAm8nNzVVAQICk36+L+/v7u7gia2M8y1dZxzMvL0+ZmZmKiYnhD2E3cqHfS0nfv13+FQUAAABlRZABAACWRZABAACWRZABAACW5dK7lq5G/t42mdHlPOkYAFAiV/j9LZZTHr8PzsgAAK54lSpVkvT7R+rDfZz7du0/f6pwaXBGBgBwxfP09JSfn58OHz4sLy8veXjwd7wrGWN08uRJHTp0SMHBwY6gWRYEGQDAFc9ms6lGjRrKzMzUnj17XF0O/k9wcLDjexXLiiADALgqeHt7q169elxechNeXl6XdCbmHIIMAOCq4eHhwSf7XmEIMgBQUmX4WhIV/OGujGdqSHwtibPSjinjiT9hthMAALAsggwAALAsggwAALAsggwAALAsJvvC0nJzcxUQECBJOnHihPz9/V1ckZthciqAKxxnZAAAgGURZAAAgGURZAAAgGURZAAAgGURZAAAgGVx1xLcCx9XDuAC/L1tMqMDXV0G3AhnZAAAgGURZAAAgGURZAAAgGURZAAAgGUx2ReWxsQ/uDteo8DlxRkZAABgWQQZAABgWQQZAABgWQQZAABgWQQZAABgWQQZAABgWQQZAABgWQQZAABgWQQZAABgWQQZAABgWQQZAABgWQQZAABgWQQZAABgWQQZAABgWQQZAABgWQQZAABgWQQZAABgWS4NMmPGjJHNZnNaYmNjHevz8vI0ePBgVatWTQEBAerTp48OHjzowooBAIA7cfkZmcaNG+vAgQOO5fPPP3esGz58uN5//30tXbpUa9as0f79+3XLLbe4sFoAAOBOPF1egKenwsPDi7RnZ2dr7ty5WrRokbp06SJJmj9/vho2bKgNGzaoTZs2FV0qAABwMy4/I7Njxw5FRESodu3a6tu3r/bu3StJ2rJli06fPq3ExETHtrGxsYqKilJGRsZ5+8vPz1dOTo7TAgAArkwuDTLXX3+9XnvtNa1c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LIsgAwAALIsgAwAALIsgAwAALIsgAwAALMulQWbt2rW64YYbFBERIZvNpuXLlzutN8bon//8p2rUqCFfX18lJiZqx44drikWAAC4HZcGmdzcXF177bWaNm1aseuff/55TZ48WTNnztTGjRvl7++v5ORk5eXlVXClAADAHXm68sl79OihHj16FLvOGKOXX35Z//jHP9S7d29J0oIFCxQWFqbly5frjjvuqMhSAQCAG3LbOTKZmZnKyspSYmKioy0oKEjXX3+9MjIyzrtffn6+cnJynBYAAHBlctsgk5WVJUkKCwtzag8LC3OsK05qaqqCgoIcS2Rk5GWtEwAAuI7bBpmySklJUXZ2tmPZt2+fq0sCAACXidsGmfDwcEnSwYMHndoPHjzoWFccu92uwMBApwUAAFyZ3DbIxMTEKDw8XKtXr3a05eTkaOPGjYqPj3dhZQAAwF249K6lEydOaOfOnY7HmZmZ2rp1q6pWraqoqCgNGzZMTz/9tOrVq6eYmBg99dRTioiI0E033eS6ogEAgNtwaZD54osv1LlzZ8fjESNGSJL69++v1157TSNHjlRubq7uv/9+HTt2TO3bt9fKlSvl4+PjqpIBAIAbcWmQ6dSpk4wx511vs9k0btw4jRs3rgKrAgAAVuG2c2QAAAAuhiADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsiyADAAAsyxJBZtq0aapVq5Z8fHx0/fXXa9OmTa4uCQAAuAG3DzJLlizRiBEjNHr0aH355Ze69tprlZycrEOHDrm6NAAA4GJuH2QmTpyo++67TwMHDlSjRo00c+ZM+fn5ad68ea4uDQAAuJinqwu4kIKCAm3ZskUpKSmONg8PDyUmJiojI6PYffLz85Wfn+94nJ2dLUnKyckp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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# yerr是误差条\n",
    "plt.bar(x=labels, height=men_means, width=0.35, yerr=men_std, label='Men')\n",
    "# 堆叠的关键是bottom参数\n",
    "plt.bar(x=labels, height=women_means, width=0.35, yerr=women_std, label='Women', bottom=men_means) \n",
    "\n",
    "plt.legend(loc='upper right')\n",
    "plt.ylabel('Scores')\n",
    "plt.title('Scores by group and gender')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "714f9842-3641-4a77-ac20-38a9f8975ba4",
   "metadata": {},
   "source": [
    "## （3）分组带标签的柱状图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "40a12099-5eba-4820-b249-88029c818bce",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Y4WFhcadd95pBAQEFPu9/1ZBQUGxsT59+hhNmjRxGLv6ntavX28fO3nypOHu7m78+c9/LvYet27d6jDP19e3xPf0W61btzZCQkKMs2fP2scyMjIMSUajRo3sY19++aUhyfjwww8dXp+enl5svKKznz171qhbt64xevRoh5+dm5tr+Pr6OowPHz7ckGRMmjTpuu8bAKoDDtcEAJP07t1bmzdv1r333quvv/5ar776qvr06aPbbrtNy5cvt89bunSpioqK9Nxzz6lGDce/tl1cXCRJn3/+uS5evKjx48c7zBk9erR8fHyKHWbo7u6ukSNHOowtXrxYLVq0UPPmzfXTTz/ZHz169JD0y2GUkuyHly5btqxMh/ZdFR0draioKPvzsLAwDRgwQKtXr9aVK1ckScOGDVNhYaGWLFlin7do0SJdvnxZQ4cOve7609PTFR0drTvvvNM+5ufnd81D78LDw9WnTx+HsU8//VQdO3ZU165d7WNeXl567LHHdPjwYX377belfr+/VqtWLY0ZM8b+3M3NTWPGjNHJkyeVlZV13df+ei+VzWbTTz/9pNjYWB08eFA2m81hbsuWLdWtWzf7c39/fzVr1kwHDx50eI+dOnVSx44dHeaV5hDFY8eOac+ePRo2bJi8vLzs47GxsWrdurXD3MWLF8vX11e9e/d22K6ioqLk5eVl364qI/uaNWt05swZPfzwww4/u2bNmrr77ruL/WxJeuKJJ274/gHA2VHyAMBEHTp00L///W+dPn1a27ZtU1JSks6ePasHHnjAXiQOHDigGjVqqGXLltdczw8//CBJatasmcO4m5ubmjRpYl9+1W233SY3NzeHsf379+ubb76Rv7+/w+OOO+6Q9P9fDObBBx9Uly5d9Mc//lGBgYF66KGH9NFHH5W68N1+++3Fxu644w4VFBToxx9/lCQ1b95cHTp00Icffmif8+GHH6pTp05q2rTpddf/ww8/lDjnWq8LDw8vcR2//SwlqUWLFvbl5REcHFzsQh5XP98b3dtt48aN6tWrl+rUqaO6devK39/ffh7kb0teWFhYsdfXq1fP4Ry4H374ocTfRUnv+7euvv/SfM779++XzWZTQEBAsW3r3LlzxS4yVJHZ9+/fL0nq0aNHsZ/92WefFfvZtWrVUkhIyPXeOgBUC5yTBwBOwM3NTR06dFCHDh10xx13aOTIkVq8eLGef/75Svl5JZ27VFRUpNatW+v1118v8TWhoaH2165fv17r1q3TypUrlZ6erkWLFqlHjx767LPPVLNmzQrJOGzYMP3pT3/Sf/7zHxUWFmrLli2aMWNGhaz7127mSppX96T+1tU9khXlwIED6tmzp5o3b67XX39doaGhcnNz06effqrp06cXK9jX+h0YhlGhuUqjqKhIAQEBDoX91/z9/R2eV2T2q5/L+++/r6CgoGLLa9Vy/Brk7u5ebG85AFRHlDwAcDLt27eXJB0/flySFBERoaKiIn377bcOhyD+WqNGjST9chGRJk2a2McvXryoQ4cOqVevXjf8uREREfr666/Vs2fPa5aXq2rUqKGePXuqZ8+eev311/Xyyy/rr3/9q9atW3fDn3V178qvff/996pdu7bDF/6HHnpIEydO1L/+9S+dP39erq6uevDBB2/4Pho1aqScnJxi4yWNXW8d2dnZxcb37dtnXy79sodJUrErmF5rT9+xY8eKXZb/+++/l6RiV6T8tU8++USFhYVavny5w56ukg43LK1GjRqV+Lso6X2X9Fqp5M/0t2MRERH6/PPP1aVLlwq7NUVps0dEREj65Wq1pflvAACsgn+uAgCTrFu3rsS9E59++qmk///Qs4EDB6pGjRp64YUXiu2xufr6Xr16yc3NTW+99ZbDOufOnSubzab+/fvfMM/gwYP13//+V++8806xZefPn1d+fr4k6dSpU8WWXy2fv73VQkk2b96sr776yv786NGjWrZsmeLj4x324jRo0EAJCQn64IMP9OGHH6pv375q0KDBDdffp08fbd68Wbt27bKPnTp16pp7kkrSr18/bdu2zeFWDfn5+ZozZ44aN25sP3T2aon49S0grly5ojlz5pS43suXL9tv0SD9UsLffvtt+fv7O5yn+FtXP5df/25tNpvmz59f6vf0W/369dOWLVu0bds2+9iPP/5Yqs8pODhYkZGReu+993Tu3Dn7eGZmpvbs2eMwd/Dgwbpy5YqmTp1abD2XL18uVpArMnufPn3k4+Ojl19+WZcuXSq2nquHBwOA1bAnDwBMMm7cOBUUFOi+++5T8+bNdfHiRW3atEmLFi1S48aN7RdGadq0qf76179q6tSp6tatm+6//365u7tr+/btCg4OVnJysvz9/ZWUlKQpU6aob9++uvfee5Wdna1Zs2apQ4cON7xYiST94Q9/0EcffaTHH39c69atU5cuXXTlyhXt27dPH330kf1eci+88ILWr1+v/v37q1GjRjp58qRmzZqlkJAQhwuVXEtkZKT69OnjcAsF6ZfbRPzWsGHD9MADD0hSiSWhJE8//bQ++OAD9e7dW+PGjbPfQiEsLEynTp264V5KSZo0aZL+9a9/KSEhQU8++aT8/Pz07rvv6tChQ/r444/th/S1atVKnTp1UlJSkk6dOiU/Pz8tXLhQly9fLnG9wcHBeuWVV3T48GHdcccdWrRokXbt2qU5c+Y43Ebgt+Lj4+Xm5qZ77rlHY8aM0blz5/TOO+8oICDAvse3rJ5++mm9//776tu3r/70pz/Zb0PQqFEj7d69+4avf/nllzVgwAB16dJFI0eO1OnTpzVjxgxFRkY6FL/Y2FiNGTNGycnJ2rVrl+Lj4+Xq6qr9+/dr8eLFevPNN+2/44rO7uPjo5SUFP3hD3/QXXfdpYceekj+/v46cuSIVq5cqS5dulTKIcAAYDozL+0JALeyVatWGY8++qjRvHlzw8vLy3BzczOaNm1qjBs3zjhx4kSx+fPmzTPatWtnuLu7G/Xq1TNiY2ONNWvWOMyZMWOG0bx5c8PV1dUIDAw0nnjiCeP06dMOc2JjY41WrVqVmOnixYvGK6+8YrRq1cr+c6KioowpU6YYNpvNMAzDWLt2rTFgwAAjODjYcHNzM4KDg42HH37Y+P7772/4niUZiYmJxgcffGDcfvvthru7u9GuXTuHWw38WmFhoVGvXj3D19fXOH/+/A3Xf9XOnTuNbt26Ge7u7kZISIiRnJxsvPXWW4YkIzc31z6vUaNGRv/+/Utcx4EDB4wHHnjAqFu3ruHh4WF07NjRWLFiRYnzevXqZbi7uxuBgYHGM888Y6xZs6bEWyi0atXK2LFjhxEdHW14eHgYjRo1MmbMmFGq97R8+XKjTZs2hoeHh9G4cWPjlVdeMebNm1fibSFKek+xsbFGbGysw9ju3buN2NhYw8PDw7jtttuMqVOnGnPnzi3VLRQMwzAWLlxoNG/e3HB3dzciIyON5cuXG4MGDTKaN29ebO6cOXOMqKgow9PT0/D29jZat25tPP3008axY8cqPfu6deuMPn36GL6+voaHh4cRERFhjBgxwuFWHsOHDzfq1Klzw/cMANWBi2GYcBY2AAClcPnyZQUHB+uee+7R3Llzb2pd48eP19tvv61z585V2MVhyiIuLk4//fST9u7dW+U/uyrdeeed8vf315o1a8yOAgC3LM7JAwA4raVLl+rHH3/UsGHDyvS68+fPOzz/+eef9f7776tr166mFDwrunTpUrHDUjMyMvT1118rLi7OnFAAAEmckwcAcEJbt27V7t27NXXqVLVr106xsbFlen10dLTi4uLUokULnThxQnPnzlVeXp6effbZSkp86/nvf/+rXr16aejQoQoODta+ffs0e/ZsBQUF6fHHHzc7HgDc0ih5AACnk5KSog8++EB33nmnFixYUObX9+vXT0uWLNGcOXPk4uKiu+66S3PnzlVMTEzFh71F1atXT1FRUfrnP/+pH3/8UXXq1FH//v01bdo01a9f3+x4AHBL45w8AAAAALAQzskDAAAAAAuh5AEAAACAhVj+nLyioiIdO3ZM3t7epboBLgAAAAA4I8MwdPbsWQUHB6tGjWvvr7N8yTt27JhCQ0PNjgEAAAAAFeLo0aMKCQm55nLLlzxvb29Jv3wQPj4+JqcBAAAAgPLJy8tTaGioveNci+VL3tVDNH18fCh5AAAAAKq9G52GxoVXAAAAAMBCKHkAAAAAYCGUPAAAAACwEMufkwcAAADg+q5cuaJLly6ZHeOW5+rqqpo1a970eih5AAAAwC3KMAzl5ubqzJkzZkfB/1O3bl0FBQXd1D2+KXkATJGSkqKUlBQdPnxYktSqVSs999xzSkhIkCSNGTNGn3/+uY4dOyYvLy917txZr7zyipo3b25iaufGZwoAKKurBS8gIEC1a9e+qWKBm2MYhgoKCnTy5ElJUsOGDcu9LkoeAFOEhIRo2rRpuv3222UYht59910NGDBAO3fuVKtWrRQVFaUhQ4YoLCxMp06d0uTJkxUfH69Dhw5VyGEMVsRnCgAoiytXrtgLXv369c2OA0menp6SpJMnTyogIKDc/392MQzDqMhgziYvL0++vr6y2WzcJw9wcn5+fvrb3/6mUaNGFVu2e/dutW3bVjk5OYqIiDAhXfXEZwoAuJYLFy7o0KFDaty4sb1cwHznz5/X4cOHFR4eLg8PD4dlpe027MkDYLorV65o8eLFys/PV3R0dLHl+fn5mj9/vsLDwxUaGmpCwuqHzxQAUFocoulcKuL3wS0UAJhmz5498vLykru7ux5//HGlpaWpZcuW9uWzZs2Sl5eXvLy8tGrVKq1Zs0Zubm4mJnZ+fKYAAICSB8A0zZo1065du7R161Y98cQTGj58uL799lv78iFDhmjnzp3KzMzUHXfcocGDB+vChQsmJnZ+fKYAAIBz8gA4jV69eikiIkJvv/12sWUXL15UvXr19M9//lMPP/ywCemqJz5TAMC1XD0n77fnfjWetLJKcxye1r/MrxkxYoTeffddjRkzRrNnz3ZYlpiYqFmzZmn48OFasGBBBaWsOtf6vUil7zbsyQPgNIqKilRYWFjiMsMwZBjGNZejZHymAACrCg0N1cKFC3X+/Hn72IULF5SamqqwsDATk5mPkgfAFElJSVq/fr0OHz6sPXv2KCkpSRkZGRoyZIgOHjyo5ORkZWVl6ciRI9q0aZN+//vfy9PTU/369TM7utPiMwUA3EruuusuhYaG6t///rd97N///rfCwsLUrl07+1hRUZGSk5MVHh4uT09PtW3bVkuWLLEvz8jIkIuLi9auXav27durdu3a6ty5s7Kzs6v0/VQkSh4AU5w8eVLDhg1Ts2bN1LNnT23fvl2rV69W79695eHhoS+//FL9+vVT06ZN9eCDD8rb21ubNm1SQECA2dGdFp8pAOBW8+ijj2r+/Pn25/PmzdPIkSMd5iQnJ+u9997T7Nmz9c0332jChAkaOnSoMjMzHeb99a9/1d///nft2LFDtWrV0qOPPlol76EycAsFAKaYO3fuNZcFBwfr008/rcI01sBnCgC41QwdOlRJSUn64YcfJEkbN27UwoULlZGRIUkqLCzUyy+/rM8//9x+S6EmTZpow4YNevvttxUbG2tf10svvWR/PmnSJPXv318XLlwodl5cdUDJAwAAAFAt+fv7q3///lqwYIEMw1D//v3VoEED+/KcnBwVFBSod+/eDq+7ePGiwyGdktSmTRv7nxs2bCjpl6NkquP5fZQ8AAAAANXWo48+qrFjx0qSZs6c6bDs3LlzkqSVK1fqtttuc1jm7u7u8NzV1dX+56s3JC8qKqrwvFWBkgcAAACg2urbt68uXrwoFxcX9enTx2FZy5Yt5e7uriNHjjgcmml1lDwAAAAA1VbNmjX13Xff2f/8a97e3vrLX/6iCRMmqKioSF27dpXNZtPGjRvl4+Oj4cOHmxG50lHyAAAAAFRr17sx+NSpU+Xv76/k5GQdPHhQdevW1V133aVnnnmmChNWLRfDMAyzQ1Sm0t4VHgAAALiVXLhwQYcOHVJ4eHi1vIKkVV3v91LabsOePADlN9nX7ARlN9lmdoLrajxppdkRyuXwtP5mRwAAAP8PN0MHAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAupZXYAAAAAAE5ksm8V/zxbmabPnj1bTz31lE6fPq1atX6pM+fOnVO9evXUpUsXZWRk2OdmZGSoe/fuysnJUUREREWmdmrsyQMAAABQbXTv3l3nzp3Tjh077GNffvmlgoKCtHXrVl24cME+vm7dOoWFhd1SBU+i5AEAAACoRpo1a6aGDRsW22M3YMAAhYeHa8uWLQ7j3bt3V2FhoZ588kkFBATIw8NDXbt21fbt2x3mubi4aPXq1WrXrp08PT3Vo0cPnTx5UqtWrVKLFi3k4+OjRx55RAUFBfbXFRUVKTk5WeHh4fL09FTbtm21ZMmSYutdu3at2rdvr9q1a6tz587Kzs6u1M+IkldNpaSkqE2bNvLx8ZGPj4+io6O1atUq+/I5c+YoLi5OPj4+cnFx0ZkzZ8wLCwAAAFSg7t27a926dfbn69atU1xcnGJjY+3j58+f19atW9W9e3c9/fTT+vjjj/Xuu+/qq6++UtOmTdWnTx+dOnXKYb2TJ0/WjBkztGnTJh09elSDBw/WG2+8odTUVK1cuVKfffaZ/vGPf9jnJycn67333tPs2bP1zTffaMKECRo6dKgyMzMd1vvXv/5Vf//737Vjxw7VqlVLjz76aCV+OpS8aiskJETTpk1TVlaWduzYoR49emjAgAH65ptvJEkFBQXq27evnnnmGZOTAgAAABWre/fu2rhxoy5fvqyzZ89q586dio2NVUxMjH0P3+bNm1VYWKi4uDilpKTob3/7mxISEtSyZUu988478vT01Ny5cx3W++KLL6pLly5q166dRo0apczMTKWkpKhdu3bq1q2bHnjgAXuJLCws1Msvv6x58+apT58+atKkiUaMGKGhQ4fq7bffdljvSy+9pNjYWLVs2VKTJk3Spk2bHA4rrWhceKWauueeexyev/TSS0pJSdGWLVvUqlUrjR8/XpIcdmMDAAAAVhAXF6f8/Hxt375dp0+f1h133CF/f3/FxsZq5MiRunDhgjIyMtSkSRPZbDZdunRJXbp0sb/e1dVVHTt21Hfffeew3jZt2tj/HBgYqNq1a6tJkyYOY9u2bZMk5eTkqKCgQL1793ZYx8WLF9WuXbtrrrdhw4aSpJMnTyosLOwmP4mSUfIs4MqVK1q8eLHy8/MVHR1tdhwAAACgUjVt2lQhISFat26dTp8+rdjYWElScHCwQkNDtWnTJq1bt049evQo03pdXV3tf3ZxcXF4fnWsqKhI0i9X9JSklStX6rbbbnOY5+7uft31SrKvpzJQ8qqxPXv2KDo6WhcuXJCXl5fS0tLUsmVLs2MBAAAAla579+7KyMjQ6dOn9dRTT9nHY2JitGrVKm3btk1PPPGEIiIi5Obmpo0bN6pRo0aSpEuXLmn79u32o9/Ko2XLlnJ3d9eRI0fsJdNZUPKqsWbNmmnXrl2y2WxasmSJhg8frszMTIoeAAAALK979+5KTEzUpUuXHEpWbGysxo4dq4sXL6p79+6qU6eOnnjiCT311FPy8/NTWFiYXn31VRUUFGjUqFHl/vne3t76y1/+ogkTJqioqEhdu3aVzWbTxo0b5ePjo+HDh1fE2ywXSl415ubmpqZNm0qSoqKitH37dr355pvFTvQEAAAArKZ79+46f/68mjdvrsDAQPt4bGyszp49a7/VgiRNmzZNRUVF+sMf/qCzZ8+qffv2Wr16terVq3dTGaZOnSp/f38lJyfr4MGDqlu3ru666y7TL37oYhiGYWqCSpaXlydfX1/ZbDb5+PiYHadS9ejRQ2FhYVqwYIF97Oq9QU6fPq26deualg0WNdnX7ARlN9lmdoLrajxppdkRyuXwtP5mRwAAlNGFCxd06NAhhYeHy8PDw+w4+H+u93spbbdhT141lZSUpISEBIWFhens2bNKTU1VRkaGVq9eLUnKzc1Vbm6ucnJyJP1y/p63t7fCwsLk5+dnZnQAAAAAlYiSV02dPHlSw4YN0/Hjx+Xr66s2bdpo9erV9ku4zp49W1OmTLHPj4mJkSTNnz9fI0aMMCMyAAAAgCpAyaumfnvjxt+aPHmyJk+eXDVhAAAAADiNGmYHAAAAAABUHEoeAAAAAFgIJQ8AAAC4hRUVFZkdAb9SEb8PzskDAAAAbkFubm6qUaOGjh07Jn9/f7m5ucnFxcXsWLcswzB08eJF/fjjj6pRo4bc3NzKvS5KHgAAAJxOSkqKUlJSdPjwYUlSq1at9NxzzykhIUHSL/cS+/Of/6yFCxeqsLBQffr00axZsxxuio3rq1GjhsLDw3X8+HEdO3bM7Dj4f2rXrq2wsDDVqFH+gy4peQAAAHA6ISEhmjZtmm6//XYZhqF3331XAwYM0M6dO9WqVStNmDBBK1eu1OLFi+Xr66uxY8fq/vvv18aNG82OXq24ubkpLCxMly9f1pUrV8yOc8urWbOmatWqddN7VCl5AAAAcDr33HOPw/OXXnpJKSkp2rJli0JCQjR37lylpqaqR48ekn65F3CLFi20ZcsWderUyYzI1ZaLi4tcXV3l6upqdhRUEEqeSRpPWml2hHI5PK2/2REAAMAt5sqVK1q8eLHy8/MVHR2trKwsXbp0Sb169bLPad68ucLCwrR582ZKHm55lDwAAAA4pT179ig6OloXLlyQl5eX0tLS1LJlS+3atUtubm6qW7euw/zAwEDl5uaaExZwIpQ8AAAAOKVmzZpp165dstlsWrJkiYYPH67MzEyzYwFOj5IHAAAAp+Tm5qamTZtKkqKiorR9+3a9+eabevDBB3Xx4kWdOXPGYW/eiRMnFBQUZFJawHlwM3QAAABUC0VFRSosLFRUVJRcXV21du1a+7Ls7GwdOXJE0dHRJiYEnAN78gAAAOB0kpKSlJCQoLCwMJ09e1apqanKyMjQ6tWr5evrq1GjRmnixIny8/OTj4+Pxo0bp+joaC66AoiSBwAAACd08uRJDRs2TMePH5evr6/atGmj1atXq3fv3pKk6dOnq0aNGho0aJDDzdABUPIAAADghObOnXvd5R4eHpo5c6ZmzpxZRYmA6oNz8gAAAADAQih5AAAAAGAhppa8lJQUtWnTRj4+PvLx8VF0dLRWrVplX37hwgUlJiaqfv368vLy0qBBg3TixAkTEwMAAACAczO15IWEhGjatGnKysrSjh071KNHDw0YMEDffPONJGnChAn65JNPtHjxYmVmZurYsWO6//77zYwMAAAAAE7N1Auv3HPPPQ7PX3rpJaWkpGjLli0KCQnR3LlzlZqaqh49ekiS5s+frxYtWmjLli1cHhcAAAAASuA05+RduXJFCxcuVH5+vqKjo5WVlaVLly6pV69e9jnNmzdXWFiYNm/ebGJSAAAAAHBept9CYc+ePYqOjtaFCxfk5eWltLQ0tWzZUrt27ZKbm5vq1q3rMD8wMFC5ubnXXF9hYaEKCwvtz/Py8iorOgAAAAA4HdNLXrNmzbRr1y7ZbDYtWbJEw4cPV2ZmZrnXl5ycrClTplRgQgAAAJTZZF+zE5TPZJvZCYCbZvrhmm5ubmratKmioqKUnJystm3b6s0331RQUJAuXryoM2fOOMw/ceKEgoKCrrm+pKQk2Ww2++Po0aOV/A4AAAAAwHmYXvJ+q6ioSIWFhYqKipKrq6vWrl1rX5adna0jR44oOjr6mq93d3e335Lh6gMAAAAAbhWmHq6ZlJSkhIQEhYWF6ezZs0pNTVVGRoZWr14tX19fjRo1ShMnTpSfn598fHw0btw4RUdHc2VNAAAAALgGU0veyZMnNWzYMB0/fly+vr5q06aNVq9erd69e0uSpk+frho1amjQoEEqLCxUnz59NGvWLDMjAwAAAIBTM7XkzZ0797rLPTw8NHPmTM2cObOKEgEAAABA9eZ05+QBAAAAAMqPkgcAAAAAFkLJAwAAAAALoeQBAAAAgIVQ8gAAAADAQih5AAAAAGAhlDwAAAAAsBBKHgAAAABYCCUPAAAAACyEkgcAAAAAFkLJAwAAAAALoeQBAAAAgIVQ8gAAAADAQih5AAAAAGAhlDwAAAAAsBBKHgAAAABYCCUPAAAAACyEkgcAAAAAFkLJAwAAAAALoeQBAAAAgIVQ8gAAAADAQih5AAAAFpacnKwOHTrI29tbAQEBGjhwoLKzs+3LDx8+LBcXlxIfixcvNjE5gPKi5AEAAFhYZmamEhMTtWXLFq1Zs0aXLl1SfHy88vPzJUmhoaE6fvy4w2PKlCny8vJSQkKCyekBlEctswMAAACg8qSnpzs8X7BggQICApSVlaWYmBjVrFlTQUFBDnPS0tI0ePBgeXl5VWVUABWEPXkAAAC3EJvNJkny8/MrcXlWVpZ27dqlUaNGVWUsABWIkgcAAHCLKCoq0vjx49WlSxdFRkaWOGfu3Llq0aKFOnfuXMXpAFQUDtcEAAC4RSQmJmrv3r3asGFDicvPnz+v1NRUPfvss1WcDEBFouQBAADcAsaOHasVK1Zo/fr1CgkJKXHOkiVLVFBQoGHDhlVxOgAViZIHAABgYYZhaNy4cUpLS1NGRobCw8OvOXfu3Lm699575e/vX4UJAVQ0Sh4AAICFJSYmKjU1VcuWLZO3t7dyc3MlSb6+vvL09LTPy8nJ0fr16/Xpp5+aFRVABeHCKwAAABaWkpIim82muLg4NWzY0P5YtGiRw7x58+YpJCRE8fHxJiUFUFHYkwcAAGBhhmGUat7LL7+sl19+uZLTAKgK7MkDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAWk5ycrA4dOsjb21sBAQEaOHCgsrOzi83bvHmzevTooTp16sjHx0cxMTE6f/68CYkBABWJkgcAgMVkZmYqMTFRW7Zs0Zo1a3Tp0iXFx8crPz/fPmfz5s3q27ev4uPjtW3bNm3fvl1jx45VjRp8NQCA6o775AEAYDHp6ekOzxcsWKCAgABlZWUpJiZGkjRhwgQ9+eSTmjRpkn1es2bNqjQnSqfxpJVmRyiXwx5mJwBuXfxzHQAAFmez2SRJfn5+kqSTJ09q69atCggIUOfOnRUYGKjY2Fht2LDBzJgAgApCyQMAwMKKioo0fvx4denSRZGRkZKkgwcPSpImT56s0aNHKz09XXfddZd69uyp/fv3mxkXAFABKHkAAFhYYmKi9u7dq4ULF9rHioqKJEljxozRyJEj1a5dO02fPl3NmjXTvHnzzIoKAKggnJMHAIBFjR07VitWrND69esVEhJiH2/YsKEkqWXLlg7zW7RooSNHjlRpRgBAxWNPHgAAFmMYhsaOHau0tDR98cUXCg8Pd1jeuHFjBQcHF7utwvfff69GjRpVZVQAQCVgTx4AABaTmJio1NRULVu2TN7e3srNzZUk+fr6ytPTUy4uLnrqqaf0/PPPq23btrrzzjv17rvvat++fVqyZInJ6QEAN4uSBwCAxaSkpEiS4uLiHMbnz5+vESNGSJLGjx+vCxcuaMKECTp16pTatm2rNWvWKCIioorTAgAqGiUPAACLMQyjVPMmTZrkcJ88AIA1cE4eAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCuIUCAABOqPGklWZHKJfD0/qbHQEAbnnsyQMAAAAAC6HkAQAAAICFUPIAAAAAwEIoeQAAAABgIZQ8AAAAALAQSh4AAAAAWAglDwAAAAAshJIHAAAAABZCyQMAAAAAC6HkAQAAAICFmFrykpOT1aFDB3l7eysgIEADBw5Udna2w5y4uDi5uLg4PB5//HGTEgMAAACAczO15GVmZioxMVFbtmzRmjVrdOnSJcXHxys/P99h3ujRo3X8+HH749VXXzUpMQAAAAA4N1NLXnp6ukaMGKFWrVqpbdu2WrBggY4cOaKsrCyHebVr11ZQUJD94ePjY1JiAABQWUpzhM9VhmEoISFBLi4uWrp0adUGBQAn51Tn5NlsNkmSn5+fw/iHH36oBg0aKDIyUklJSSooKLjmOgoLC5WXl+fwAAAAzq+0R/hI0htvvCEXFxcTUgKA86tldoCrioqKNH78eHXp0kWRkZH28UceeUSNGjVScHCwdu/erf/93/9Vdna2/v3vf5e4nuTkZE2ZMqWqYgMAgAqSnp7u8HzBggUKCAhQVlaWYmJi7OO7du3S3//+d+3YsUMNGzas6pgA4PScpuQlJiZq79692rBhg8P4Y489Zv9z69at1bBhQ/Xs2VMHDhxQREREsfUkJSVp4sSJ9ud5eXkKDQ2tvOAAAKBSlHSET0FBgR555BHNnDlTQUFBZkUDAKfmFCVv7NixWrFihdavX6+QkJDrzr377rslSTk5OSWWPHd3d7m7u1dKTgAAUDWudYTPhAkT1LlzZw0YMMDEdADg3EwteYZhaNy4cUpLS1NGRobCw8Nv+Jpdu3ZJEodnAABgYSUd4bN8+XJ98cUX2rlzp4nJAMD5mVryEhMTlZqaqmXLlsnb21u5ubmSJF9fX3l6eurAgQNKTU1Vv379VL9+fe3evVsTJkxQTEyM2rRpY2Z0AABQSa51hM8XX3yhAwcOqG7dug7zBw0apG7duikjI6NqgwKAkzK15KWkpEj65YbnvzZ//nyNGDFCbm5u+vzzz/XGG28oPz9foaGhGjRokP7v//7PhLQAAKAy3egIn0mTJumPf/yjw1jr1q01ffp03XPPPVUZFQCcmumHa15PaGioMjMzqygNAAAw042O8Ll6v9zfCgsLK9UpHwBwq3Cq++QBAIBbV0pKimw2m+Li4tSwYUP7Y9GiRWZHA4BqxSmurgkAAHCjI3wq6jUAYHXsyQMAAAAAC6HkAQAAAICFUPIAAAAAwEIoeQAAAABgIZQ8AICpkpOT1aFDB3l7eysgIEADBw5Udna2w5wxY8YoIiJCnp6e8vf314ABA7Rv3z6TEgMA4NwoeQAAU2VmZioxMVFbtmzRmjVrdOnSJcXHxys/P98+JyoqSvPnz9d3332n1atXyzAMxcfH68qVKyYmBwDAOXELBQCAqdLT0x2eL1iwQAEBAcrKylJMTIwk6bHHHrMvb9y4sV588UW1bdtWhw8fVkRERJXmxQ1M9jU7QflMtpmdAAAqDHvyAABOxWb75cu2n59ficvz8/M1f/58hYeHKzQ0tCqjAQBQLVDyAABOo6ioSOPHj1eXLl0UGRnpsGzWrFny8vKSl5eXVq1apTVr1sjNzc2kpAAAOC9KHgDAaSQmJmrv3r1auHBhsWVDhgzRzp07lZmZqTvuuEODBw/WhQsXTEgJAIBz45w8AIBTGDt2rFasWKH169crJCSk2HJfX1/5+vrq9ttvV6dOnVSvXj2lpaXp4YcfNiEtAADOi5IHADCVYRgaN26c0tLSlJGRofDw8FK9xjAMFRYWVkFCAACqF0oeAMBUiYmJSk1N1bJly+Tt7a3c3FxJv+y58/T01MGDB7Vo0SLFx8fL399f//nPfzRt2jR5enqqX79+JqcHAMD5cE4eAMBUKSkpstlsiouLU8OGDe2PRYsWSZI8PDz05Zdfql+/fmratKkefPBBeXt7a9OmTQoICDA5PQAAzoc9eQAAUxmGcd3lwcHB+vTTT6soDQAA1R978gAAAADAQih5AAAAAGAhlDwAAAAAsBBKHgAAAABYCCUPAAAAuAUkJyerQ4cO8vb2VkBAgAYOHKjs7Gz78lOnTmncuHFq1qyZPD09FRYWpieffFI2m83E1CgPSh4AAABwC8jMzFRiYqK2bNmiNWvW6NKlS4qPj1d+fr4k6dixYzp27Jhee+017d27VwsWLFB6erpGjRplcnKUFbdQAADcvMm+Zicon8n86zSAW0d6errD8wULFiggIEBZWVmKiYlRZGSkPv74Y/vyiIgIvfTSSxo6dKguX76sWrWoDtUFe/IAAACAW9DVwzD9/PyuO8fHx4eCV81Q8gAAAIBbTFFRkcaPH68uXbooMjKyxDk//fSTpk6dqscee6yK0+FmUckBAACAW0xiYqL27t2rDRs2lLg8Ly9P/fv3V8uWLTV58uSqDYebRskDAAAAbiFjx47VihUrtH79eoWEhBRbfvbsWfXt21fe3t5KS0uTq6urCSlxMzhcEwAAALgFGIahsWPHKi0tTV988YXCw8OLzcnLy1N8fLzc3Ny0fPlyeXh4mJAUN4s9eQAAAMAtIDExUampqVq2bJm8vb2Vm5srSfL19ZWnp6e94BUUFOiDDz5QXl6e8vLyJEn+/v6qWbOmmfFRBpQ8AAAA4BaQkpIiSYqLi3MYnz9/vkaMGKGvvvpKW7dulSQ1bdrUYc6hQ4fUuHHjqoiJCkDJAwAAAG4BhmFcd3lcXNwN56B64Jw8AAAAALAQSh4AAAAAWAglDwAAAAAshJIHAAAAABZCyQOqueTkZHXo0EHe3t4KCAjQwIEDlZ2d7TBnzpw5iouLk4+Pj1xcXHTmzBlzwgIAAKDSUfKAai4zM1OJiYnasmWL1qxZo0uXLik+Pl75+fn2OQUFBerbt6+eeeYZE5MCAACgKnALBaCaS09Pd3i+YMECBQQEKCsrSzExMZKk8ePHS5IyMjKqOB0AAACqGiUPsBibzSZJ8vPzMzkJAACoaI0nrTQ7Qrkcntbf7Ai3FA7XBCykqKhI48ePV5cuXRQZGWl2HAAAAJiAPXmAhSQmJmrv3r3asGGD2VEAAABgEkoeYBFjx47VihUrtH79eoWEhJgdBwAAACah5AHVnGEYGjdunNLS0pSRkaHw8HCzIwEAAMBElDygmktMTFRqaqqWLVsmb29v5ebmSpJ8fX3l6ekpScrNzVVubq5ycnIkSXv27JG3t7fCwsK4QAsAAIDFcOEVoJpLSUmRzWZTXFycGjZsaH8sWrTIPmf27Nlq166dRo8eLUmKiYlRu3bttHz5crNiAwAAoJKwJw+o5gzDuOGcyZMna/LkyZUfBgAAAKZjTx4AAAAAWAglDwAAAAAshJIHAAAAABZCyQMAAAAAC6HkocokJyerQ4cO8vb2VkBAgAYOHKjs7GyHORcuXFBiYqLq168vLy8vDRo0SCdOnDApMQAAAMzGd8iyo+ShymRmZioxMVFbtmzRmjVrdOnSJcXHxys/P98+Z8KECfrkk0+0ePFiZWZm6tixY7r//vtNTA0AAAAz8R2y7LiFAqpMenq6w/MFCxYoICBAWVlZiomJkc1m09y5c5WamqoePXpIkubPn68WLVpoy5Yt6tSpkxmxAQAAYCK+Q5YdJQ+msdlskiQ/Pz9JUlZWli5duqRevXrZ5zRv3lxhYWHavHmzpf8DbTxppdkRyuWwh9kJAADArYbvkDfG4ZowRVFRkcaPH68uXbooMjJSkpSbmys3NzfVrVvXYW5gYKByc3NNSAkAAABnwnfI0mFPHkyRmJiovXv3asOGDWZHAQAAQDXBd8jSYU8eqtzYsWO1YsUKrVu3TiEhIfbxoKAgXbx4UWfOnHGYf+LECQUFBVVxSgAAADgTvkOWHiUPVcYwDI0dO1ZpaWn64osvFB4e7rA8KipKrq6uWrt2rX0sOztbR44cUXR0dFXHBQAAgBPgO2TZcbgmqkxiYqJSU1O1bNkyeXt724+R9vX1laenp3x9fTVq1ChNnDhRfn5+8vHx0bhx4xQdHX1LnjALAAAAvkOWByUPVSYlJUWSFBcX5zA+f/58jRgxQpI0ffp01ahRQ4MGDVJhYaH69OmjWbNmVXFSAAAAOAu+Q5YdJQ9VxjCMG87x8PDQzJkzNXPmzCpIBAAAAGfHd8iy45w8AAAAALAQSh4AAAAAWIipJS85OVkdOnSQt7e3AgICNHDgQGVnZzvMuXDhghITE1W/fn15eXlp0KBBOnHihEmJAQAAAMC5mVryMjMzlZiYqC1btmjNmjW6dOmS4uPjlZ+fb58zYcIEffLJJ1q8eLEyMzN17Ngx3X///SamBgAAAADnZeqFV9LT0x2eL1iwQAEBAcrKylJMTIxsNpvmzp2r1NRU9ejRQ9IvV9Fp0aKFtmzZcsteEhUAAAAArsWpzsmz2WySJD8/P0lSVlaWLl26pF69etnnNG/eXGFhYdq8ebMpGQEAAADAmTnNLRSKioo0fvx4denSRZGRkZKk3Nxcubm5qW7dug5zAwMD7TdB/K3CwkIVFhban+fl5VVaZgAAAABwNk5T8hITE7V3715t2LDhptaTnJysKVOmVFAqFDPZ1+wE5TPZZnYCAACAWxffIauUUxyuOXbsWK1YsULr1q1TSEiIfTwoKEgXL17UmTNnHOafOHFCQUFBJa4rKSlJNpvN/jh69GhlRgcAAAAAp2JqyTMMQ2PHjlVaWpq++OILhYeHOyyPioqSq6ur1q5dax/Lzs7WkSNHFB0dXeI63d3d5ePj4/AAAAAAgFuFqYdrJiYmKjU1VcuWLZO3t7f9PDtfX195enrK19dXo0aN0sSJE+Xn5ycfHx+NGzdO0dHRXFkTAAAAAEpgaslLSUmRJMXFxTmMz58/XyNGjJAkTZ8+XTVq1NCgQYNUWFioPn36aNasWVWcFAAAAACqB1NLnmEYN5zj4eGhmTNnaubMmVWQCAAAAACqN6e48AoAAAAAoGJQ8gAAAADAQih5AAAAAGAhlDwAAAAAsBBKHgAAAABYCCUPAAAAACyEkgcAAAAAFkLJAwAAAAALoeQBAAAAgIVQ8gAAAADAQih5AAAAAGAhlDwAAAAAsBBKHgAAAABYSIWUvLy8PC1dulTfffddRawOAAAAAFBO5Sp5gwcP1owZMyRJ58+fV/v27TV48GC1adNGH3/8cYUGBAAAAACUXrlK3vr169WtWzdJUlpamgzD0JkzZ/TWW2/pxRdfrNCAAAAAAIDSK1fJs9ls8vPzkySlp6dr0KBBql27tvr376/9+/dXaEAAAAAAQOmVq+SFhoZq8+bNys/PV3p6uuLj4yVJp0+floeHR4UGBAAAAACUXq3yvGj8+PEaMmSIvLy8FBYWpri4OEm/HMbZunXriswHAAAAACiDcpW8//mf/1HHjh119OhR9e7dWzVq/LJDsEmTJpyTBwAAAAAmKlfJk6T27durTZs2OnTokCIiIlSrVi3179+/IrMBAAAAAMqoXOfkFRQUaNSoUapdu7ZatWqlI0eOSJLGjRunadOmVWhAAAAAAEDplavkJSUl6euvv1ZGRobDhVZ69eqlRYsWVVg4AAAAAEDZlOtwzaVLl2rRokXq1KmTXFxc7OOtWrXSgQMHKiwcAAAAAKBsyrUn78cff1RAQECx8fz8fIfSBwAAAACoWuUqee3bt9fKlSvtz68Wu3/+85+Kjo6umGQAAAAAgDIr1+GaL7/8shISEvTtt9/q8uXLevPNN/Xtt99q06ZNyszMrOiMAAAAAIBSKteevK5du+rrr7/W5cuX1bp1a3322WcKCAjQ5s2bFRUVVdEZAQAAAAClVOY9eZcuXdKYMWP07LPP6p133qmMTAAAAACAcirznjxXV1d9/PHHlZEFAAAAAHCTynW45sCBA7V06dIKjgIAAAAAuFnluvDK7bffrhdeeEEbN25UVFSU6tSp47D8ySefrJBwAAAAAICyKVfJmzt3rurWrausrCxlZWU5LHNxcaHkAQAAAIBJylXyDh06VNE5AAAAAAAVoFzn5P2aYRgyDKMisgAAAAAAblK5S957772n1q1by9PTU56enmrTpo3ef//9iswGAAAAACijch2u+frrr+vZZ5/V2LFj1aVLF0nShg0b9Pjjj+unn37ShAkTKjQkAAAAAKB0ylXy/vGPfyglJUXDhg2zj917771q1aqVJk+eTMkDAAAAAJOU63DN48ePq3PnzsXGO3furOPHj990KAAAAABA+ZSr5DVt2lQfffRRsfFFixbp9ttvv+lQAAAAAIDyKdfhmlOmTNGDDz6o9evX28/J27hxo9auXVti+QMAAAAAVI1y7ckbNGiQtm7dqgYNGmjp0qVaunSpGjRooG3btum+++6r6IwAAAAAgFIq1548SYqKitIHH3xQkVkAAAAAADepXHvyPv30U61evbrY+OrVq7Vq1aqbDgUAAAAAKJ9ylbxJkybpypUrxcYNw9CkSZNuOhQAAAAAoHzKVfL279+vli1bFhtv3ry5cnJybjoUAAAAAKB8ylXyfH19dfDgwWLjOTk5qlOnzk2HAgAAAACUT7lK3oABAzR+/HgdOHDAPpaTk6M///nPuvfeeyssHAAAAACgbMpV8l599VXVqVNHzZs3V3h4uMLDw9W8eXPVr19fr732WkVnBAAAAACUUrluoeDr66tNmzZpzZo1+vrrr+Xp6am2bduqW7duFZ0PAAAAAFAGZdqTt3nzZq1YsUKS5OLiovj4eAUEBOi1117ToEGD9Nhjj6mwsLBSggIAAAAAbqxMJe+FF17QN998Y3++Z88ejR49Wr1799akSZP0ySefKDk5ucJDAgAAAABKp0wlb9euXerZs6f9+cKFC9WxY0e98847mjhxot566y199NFHFR4SAAAAAFA6ZSp5p0+fVmBgoP15ZmamEhIS7M87dOigo0ePVlw6AAAAAECZlKnkBQYG6tChQ5Kkixcv6quvvlKnTp3sy8+ePStXV9eKTQgAAAAAKLUylbx+/fpp0qRJ+vLLL5WUlKTatWs7XFFz9+7dioiIqPCQAAAAAIDSKdMtFKZOnar7779fsbGx8vLy0rvvvis3Nzf78nnz5ik+Pr7CQwIAAAAASqdMJa9BgwZav369bDabvLy8VLNmTYflixcvlpeXV4UGBAAAAACUXrlvhl4SPz+/mwoDAAAAALg5ZTonDwAAAADg3Ch5AAAAAGAhlDwAAAAAsBBKHgAAAABYCCUPAAAAACyEkgcAAAAAFmJqyVu/fr3uueceBQcHy8XFRUuXLnVYPmLECLm4uDg8+vbta05YAAAAAKgGTC15+fn5atu2rWbOnHnNOX379tXx48ftj3/9619VmBAAAAAAqpdy3Qy9oiQkJCghIeG6c9zd3RUUFFRFiQAAAACgenP6c/IyMjIUEBCgZs2a6YknntDPP/983fmFhYXKy8tzeAAAAADArcKpS17fvn313nvvae3atXrllVeUmZmphIQEXbly5ZqvSU5Olq+vr/0RGhpahYkBAAAAwFymHq55Iw899JD9z61bt1abNm0UERGhjIwM9ezZs8TXJCUlaeLEifbneXl5FD0AAAAAtwyn3pP3W02aNFGDBg2Uk5NzzTnu7u7y8fFxeAAAAADAraJalbz//Oc/+vnnn9WwYUOzowAAAACAUzL1cM1z58457JU7dOiQdu3aJT8/P/n5+WnKlCkaNGiQgoKCdODAAT399NNq2rSp+vTpY2JqAAAAAHBeppa8HTt2qHv37vbnV8+lGz58uFJSUrR79269++67OnPmjIKDgxUfH6+pU6fK3d3drMgAAAAA4NRMLXlxcXEyDOOay1evXl2FaQAAAACg+qtW5+QBAAAAAK6PkgcAAAAAFkLJAwAAAAALoeQBAAAAgIVQ8gAAAADAQih5AAAAAGAhlDwAAAAAsBBKHgAAAABYCCUPAAAAACyEkgcAAAAAFkLJAwAAAAALoeQBAAAAgIVQ8gAAAADAQih5AAAAAGAhlDwAAAAAsBBKHgAAAABYCCUPAAAAACyEkgcAAAAAFkLJAwAAAAALoeQBAAAAgIVQ8gAAAADAQih5AAAAAGAhlDwAAAAAsBBKHgAAAABYCCUPAAAAACyEkgcAAAAAFkLJAwAAAAALoeQBAAAAgIVQ8gAAAADAQih5AAAAAGAhlDwAAAAAsBBKHgAAAABYCCUPAAAAACyEkgcAAAAAFkLJAwAAAAALoeQBAAAAgIVQ8gAAAADAQih5AAAAAGAhlDwAAAAAsBBKHgAAAABYCCUPAAAAACyEkgcAAAAAFkLJAwAAAAALoeQBAAAAgIVQ8gAAAADAQih5AAAAAGAhlDwAAAAAsBBKHgAAAABYCCUPAAAAACyEkgcAAAAAFkLJAwAAAAALoeQBAAAAgIVQ8gAAAADAQih5AAAAAGAhlDwAAAAAsBBKHgAAAABYCCUPAAAAACyEkgcAAAAAFkLJAwAAAAALoeQBAAAAgIVQ8gAAAADAQih5AAAAAGAhlDwAAAAAsBBKHgAAAABYCCUPAAAAACzE1JK3fv163XPPPQoODpaLi4uWLl3qsNwwDD333HNq2LChPD091atXL+3fv9+csAAAAABQDZha8vLz89W2bVvNnDmzxOWvvvqq3nrrLc2ePVtbt25VnTp11KdPH124cKGKkwIAAABA9VDLzB+ekJCghISEEpcZhqE33nhD//d//6cBAwZIkt577z0FBgZq6dKleuihh6oyKgAAAABUC057Tt6hQ4eUm5urXr162cd8fX119913a/Pmzdd8XWFhofLy8hweAAAAAHCrcNqSl5ubK0kKDAx0GA8MDLQvK0lycrJ8fX3tj9DQ0ErNCQAAAADOxGlLXnklJSXJZrPZH0ePHjU7EgAAAABUGacteUFBQZKkEydOOIyfOHHCvqwk7u7u8vHxcXgAAAAAwK3CaUteeHi4goKCtHbtWvtYXl6etm7dqujoaBOTAQAAAIDzMvXqmufOnVNOTo79+aFDh7Rr1y75+fkpLCxM48eP14svvqjbb79d4eHhevbZZxUcHKyBAweaFxoAAAAAnJipJW/Hjh3q3r27/fnEiRMlScOHD9eCBQv09NNPKz8/X4899pjOnDmjrl27Kj09XR4eHmZFBgAAAACnZmrJi4uLk2EY11zu4uKiF154QS+88EIVpgIAAACA6stpz8kDAAAAAJQdJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEKcueZMnT5aLi4vDo3nz5mbHAgAAAACnVcvsADfSqlUrff755/bntWo5fWQAAAAAMI3TN6ZatWopKCjI7BgAAAAAUC049eGakrR//34FBwerSZMmGjJkiI4cOWJ2JAAAAABwWk69J+/uu+/WggUL1KxZMx0/flxTpkxRt27dtHfvXnl7e5f4msLCQhUWFtqf5+XlVVVcAAAAADCdU5e8hIQE+5/btGmju+++W40aNdJHH32kUaNGlfia5ORkTZkypaoiAgAAAIBTcfrDNX+tbt26uuOOO5STk3PNOUlJSbLZbPbH0aNHqzAhAAAAAJirWpW8c+fO6cCBA2rYsOE157i7u8vHx8fhAQAAAAC3CqcueX/5y1+UmZmpw4cPa9OmTbrvvvtUs2ZNPfzww2ZHAwAAAACn5NTn5P3nP//Rww8/rJ9//ln+/v7q2rWrtmzZIn9/f7OjAQAAAIBTcuqSt3DhQrMjAAAAAEC14tSHawIAAAAAyoaSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALISSBwAAAAAWQskDAAAAAAuh5AEAAACAhVDyAAAAAMBCKHkAAAAAYCGUPAAAAACwEEoeAAAAAFgIJQ8AAAAALKRalLyZM2eqcePG8vDw0N13361t27aZHQkAAAAAnJLTl7xFixZp4sSJev755/XVV1+pbdu26tOnj06ePGl2NAAAAABwOk5f8l5//XWNHj1aI0eOVMuWLTV79mzVrl1b8+bNMzsaAAAAADidWmYHuJ6LFy8qKytLSUlJ9rEaNWqoV69e2rx5c4mvKSwsVGFhof25zWaTJOXl5VVu2DIqKiwwO0K55LkYZkcoHyf7/f8W20MVYluoFNVyW5CcentgW6hibAsVjm2hcrA9VDEn2x6udhrDuP7n6dQl76efftKVK1cUGBjoMB4YGKh9+/aV+Jrk5GRNmTKl2HhoaGilZLzV+JodoLymVdvkTq1afqpsC5Wi2n6qbA8Vrtp+omwLFa7afqJsC5Wi2n6qTro9nD17Vr6+187m1CWvPJKSkjRx4kT786KiIp06dUr169eXi4uLicmqv7y8PIWGhuro0aPy8fExOw5MxvaAq9gWcBXbAq5iW8CvsT1UHMMwdPbsWQUHB193nlOXvAYNGqhmzZo6ceKEw/iJEycUFBRU4mvc3d3l7u7uMFa3bt3KinhL8vHx4T9Q2LE94Cq2BVzFtoCr2Bbwa2wPFeN6e/CucuoLr7i5uSkqKkpr1661jxUVFWnt2rWKjo42MRkAAAAAOCen3pMnSRMnTtTw4cPVvn17dezYUW+88Yby8/M1cuRIs6MBAAAAgNNx+pL34IMP6scff9Rzzz2n3Nxc3XnnnUpPTy92MRZUPnd3dz3//PPFDofFrYntAVexLeAqtgVcxbaAX2N7qHouxo2uvwkAAAAAqDac+pw8AAAAAEDZUPIAAAAAwEIoeQAAAABgIZQ8AAAAALAQSh6Kyc3N1Z/+9Cc1bdpUHh4eCgwMVJcuXZSSkqKCggJJ0pw5cxQXFycfHx+5uLjozJkz5oZGpbnR9nDq1CmNGzdOzZo1k6enp8LCwvTkk0/KZrOZHR0VrDR/N4wZM0YRERHy9PSUv7+/BgwYoH379pmcHBWtNNvCVYZhKCEhQS4uLlq6dKk5gVFpSrMtxMXFycXFxeHx+OOPm5wclaG0fzds3rxZPXr0UJ06deTj46OYmBidP3/exOTW4/S3UEDVOnjwoLp06aK6devq5ZdfVuvWreXu7q49e/Zozpw5uu2223TvvfeqoKBAffv2Vd++fZWUlGR2bFSS0mwPTZo00bFjx/Taa6+pZcuW+uGHH/T444/r2LFjWrJkidlvARWktH83REVFaciQIQoLC9OpU6c0efJkxcfH69ChQ6pZs6bZbwMVoLTbwlVvvPGGXFxcTEyMylKWbWH06NF64YUX7K+tXbu2WbFRSUq7PWzevNn+/fEf//iHatWqpa+//lo1arDvqSJxCwU46Nu3r7755hvt27dPderUKbbcMAyH/1lnZGSoe/fuOn36tOrWrVuFSVEVyro9XLV48WINHTpU+fn5qlWLf0uygvJuC7t371bbtm2Vk5OjiIiIqoiKSlaWbWHXrl363e9+px07dqhhw4ZKS0vTwIEDqzgxKktpt4W4uDjdeeedeuONN6o+JKpMabeHTp06qXfv3po6daoJKW8dVGbY/fzzz/rss8+UmJhY4n+ckvjX2FvIzWwPNptNPj4+FDyLKO+2kJ+fr/nz5ys8PFyhoaGVHRNVoCzbQkFBgR555BHNnDlTQUFBVRkTVaCsfy98+OGHatCggSIjI5WUlFTssF5Ub6XdHk6ePKmtW7cqICBAnTt3VmBgoGJjY7Vhw4YqTmx9lDzY5eTkyDAMNWvWzGG8QYMG8vLykpeXl/73f//XpHSoauXdHn766SdNnTpVjz32WFVFRSUr67Ywa9Ys+/iqVau0Zs0aubm5VXVsVIKybAsTJkxQ586dNWDAADOiopKVZVt45JFH9MEHH2jdunVKSkrS+++/r6FDh5oRG5WktNvDwYMHJUmTJ0/W6NGjlZ6errvuuks9e/bU/v37zYhuWfwzO25o27ZtKioq0pAhQ1RYWGh2HJjsettDXl6e+vfvr5YtW2ry5MnmBESVuda2MGTIEPXu3VvHjx/Xa6+9psGDB2vjxo3y8PAwMS0q02+3heXLl+uLL77Qzp07zY6GKlbS3wu//ke/1q1bq2HDhurZs6cOHDjAYdwW99vtoaioSNIvF+kaOXKkJKldu3Zau3at5s2bp+TkZDPjWgolD3ZNmzaVi4uLsrOzHcabNGkiSfL09DQjFkxS1u3h7Nmz6tu3r7y9vZWWliZXV9cqy4rKVdZtwdfXV76+vrr99tvVqVMn1atXT2lpaXr44YerLDMqR2m3hS+++EIHDhwodq72oEGD1K1bN2VkZFRFXFSim/nOcPfdd0sS5+paSGm3h4YNG0qSWrZs6TCvRYsWOnLkSBUkvXVwuCbs6tevr969e2vGjBnKz883Ow5MVpbtIS8vT/Hx8XJzc9Py5cvZY2MxN/N3g2EYMgyDowAsorTbwqRJk7R7927t2rXL/pCk6dOna/78+VWUFpXpZv5euLo9XP3Cj+qvtNtD48aNFRwcXKwMfv/992rUqFFlx7ylUPLgYNasWbp8+bLat2+vRYsW6bvvvlN2drY++OAD7du3z34J9NzcXO3atUs5OTmSpD179mjXrl06deqUmfFRwUqzPVwtePn5+Zo7d67y8vKUm5ur3NxcXblyxey3gApSmm3h4MGDSk5OVlZWlo4cOaJNmzbp97//vTw9PdWvXz+z3wIqSGm2haCgIEVGRjo8JCksLEzh4eEmvwNUlNJsCwcOHNDUqVOVlZWlw4cPa/ny5Ro2bJhiYmLUpk0bs98CKlBptgcXFxc99dRTeuutt7RkyRLl5OTo2Wef1b59+zRq1Ciz34K1GMBvHDt2zBg7dqwRHh5uuLq6Gl5eXkbHjh2Nv/3tb0Z+fr5hGIbx/PPPG5KKPebPn29ueFS4G20P69atK3FbkGQcOnTI7PioQDfaFv773/8aCQkJRkBAgOHq6mqEhIQYjzzyiLFv3z6zo6OCleb/E78lyUhLS6vaoKh0N9oWjhw5YsTExBh+fn6Gu7u70bRpU+Opp54ybDab2dFRCUr7d0NycrIREhJi1K5d24iOjja+/PJLE1NbE/fJAwAAAAAL4XBNAAAAALAQSh4AAAAAWAglDwAAAAAshJIHAAAAABZCyQMAAAAAC6HkAQAAAICFUPIAAAAAwEIoeQAAAABgIZQ8AAAAALAQSh4AAAAAWAglDwAAAAAshJIHAAAAABby/wENaX/ioCwxtwAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 900x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 定义标签列表，表示不同的组别\n",
    "labels=['G1', 'G2', 'G3', 'G4', 'G5','G6']\n",
    "\n",
    "# 生成随机整数数组，表示男性的分数，范围在20到35之间，共有6个数据点\n",
    "men_means = np.random.randint(20, 35, size=(6,))\n",
    "\n",
    "# 生成随机整数数组，表示女性的分数，范围在20到35之间，共有6个数据点\n",
    "women_means = np.random.randint(20, 35, size=(6,))\n",
    "\n",
    "# 创建一个包含从0到len(men_means)-1的数组，用于x轴的位置\n",
    "x = np.arange(len(men_means))\n",
    "\n",
    "# 设置图形的大小为9x6英寸\n",
    "plt.figure(figsize=(9, 6))\n",
    "\n",
    "# 设置条形图的宽度\n",
    "width = 0.35\n",
    "\n",
    "# 绘制男性分数的条形图，位置在x轴上减去半个宽度\n",
    "rects1 = plt.bar(x - width/2, men_means, width)\n",
    "\n",
    "# 绘制女性分数的条形图，位置在x轴上加上半个宽度\n",
    "rects2 = plt.bar(x + width/2, women_means, width)\n",
    "\n",
    "# 设置y轴的标签为'Scores'\n",
    "plt.ylabel('Scores')\n",
    "\n",
    "# 设置图表的标题为'Scores by group and gender'\n",
    "plt.title('Scores by group and gender')\n",
    "\n",
    "# 设置x轴的刻度标签为labels列表中的值\n",
    "plt.xticks(x, labels)\n",
    "\n",
    "# 添加图例，分别表示男性和女性\n",
    "plt.legend(['Men', 'Women'])\n",
    "\n",
    "# 定义一个函数，用于在每个条形图上方显示其高度值\n",
    "def set_label(rects):\n",
    "    for rect in rects:\n",
    "        height = rect.get_height()  # 获取条形图的高度\n",
    "        plt.text(\n",
    "            x=rect.get_x() + rect.get_width() / 2,  # 计算文本的x坐标，位于条形图的中心\n",
    "            y=height + 0.5,  # 计算文本的y坐标，位于条形图顶部之上0.5单位\n",
    "            s=height,  # 文本内容为条形图的高度值\n",
    "            ha='center'  # 水平对齐方式为居中\n",
    "        )\n",
    "\n",
    "# 调用set_label函数，为男性分数的条形图添加标签\n",
    "set_label(rects1)\n",
    "\n",
    "# 调用set_label函数，为女性分数的条形图添加标签\n",
    "set_label(rects2)\n",
    "\n",
    "# 设置紧凑布局，避免标签重叠\n",
    "plt.tight_layout()\n",
    "\n",
    "# 显示图表\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "429e76d8-647d-438b-a303-cdc883fa8e83",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
